﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using IChessEngine;

namespace IBLL
{
    public interface IChsGameEditBLL
    {
        void OpenDAO(params object[] parameters);
        void CloseDAO(params object[] parameters);
        List<IChsGameInfo> GetGames();
        IChsGame CreateGame(string _whitePlayer,
                                   string _blackPlayer,
                                   DateTime _date);
        void SaveGame(Guid gameId);
        IChsGame OpenGame(Guid gameId);
        void CloseGame(Guid gameId);
        IChsGamePosition GetRootPosition(Guid gameId);
        IChsGameMovement AddMovement(Guid gameId, IChsGamePosition currentPosition, IChsMovement movement);
        IChsGamePosition GetTargetPosition(Guid gameId, IChsGameMovement movement);
        IChsGamePosition GetTargetPosition(Guid gameId, Guid positionId);
        IChsGamePosition FindBackwardPosition(Guid gameId, IChsGamePosition currentPosition);
        List<IChsGameMovement> FindForwardMovements(Guid gameId, IChsGamePosition currentPosition);
        void Save();
    }
}
